<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Abstract Syntax Notation One</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Abstract_Syntax_Notation_One"> <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Abstract_Syntax_Notation_One rootpage-Abstract_Syntax_Notation_One skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Abstract Syntax Notation One</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p>Die <b>Abstract Syntax Notation One</b> (<b>ASN.1</b>; <span style="font-style:normal;font-weight:normal"><a href="Deutsche_Sprache" title="Deutsche Sprache">deutsch</a></span> <span lang="de-Latn">Abstrakte Syntaxnotation Eins</span>) ist eine <a href="Computersprache#Beschreibungssprachen" title="Computersprache">Beschreibungssprache</a> zur Definition von <a href="Datenstruktur" title="Datenstruktur">Datenstrukturen</a> sowie Festlegungen zur Umsetzung von Datenstrukturen und Elementen in ein netzeinheitliches Format. Sie ist gemeinsamer Standard der <a href="ITU-T" class="mw-redirect" title="ITU-T">ITU-T</a> (International Telecommunication Union – Telecommunication Standardization Sector) und der <a href="Internationale_Organisation_f%C3%BCr_Normung" title="Internationale Organisation für Normung">ISO</a> (Internationale Organisation für Normung).
</p><p>Das Wort <i>Abstract</i> im Namen bedeutet, dass zwar die (abstrakte) Struktur der Daten festgelegt wird, nicht aber die (konkrete) Schreibweise, also wie die einzelnen Bits über die Leitung geschickt oder in Dateien gespeichert werden. Durch diese Trennung zwischen Inhalt und Form ist es möglich, je nach Verwendungszweck eine dafür geeignete Schreibweise (Kodierung) zu verwenden.
</p><p>Das Wort <i>Syntax</i> im Namen bedeutet, dass diese Notation nur festlegt, welche Form die Daten haben. Sie legt jedoch nicht fest, wie diese Daten interpretiert werden. So kann mit ASN.1 zum Beispiel eine „Folge zweier Zahlen, nämlich 7 und 13“ beschrieben werden. Was diese Zahlen inhaltlich bedeuten, wird jedoch nicht von ASN.1 festgelegt, sondern von der Anwendung, die ASN.1 verwendet.
</p><p>Die Notation ist in den ITU-T-Standards X.680ff definiert. Die zugehörigen Standards X.690ff definieren verschiedene <i>Encoding Rules</i> (Kodierungsregeln), wie die ASN.1-Datenwerte auf Bit-Ebene kodiert werden. Mit Hilfe von ASN.1 und einer gemeinsamen Kodierungsregel können Systeme mit unterschiedlichen internen Datendarstellungen Nachrichten austauschen.
</p><p>ASN.1 ist eine verbreitete Möglichkeit, die Nachrichtenelemente von Protokollen des <a href="OSI-Modell" title="OSI-Modell">OSI-Modells</a> eindeutig zu beschreiben, und wird von OSI-konformen Techniken wie <a href="X.500" title="X.500">X.500</a> und <a href="X.509" title="X.509">X.509</a>, aber auch von <a href="Internetprotokollfamilie" title="Internetprotokollfamilie">Internetprotokollen</a> wie <a href="Simple_Network_Management_Protocol" title="Simple Network Management Protocol">SNMP</a> oder <a href="LDAP" class="mw-redirect" title="LDAP">LDAP</a> verwendet. Breite Anwendung findet ASN.1 auch im Telekommunikationsbereich, z. B. bei den Standards <a href="Global_System_for_Mobile_Communications" title="Global System for Mobile Communications">GSM</a> für die Abrechnung von <a href="Roaming" title="Roaming">Roaminggesprächen</a> in <a href="TAP3" title="TAP3">TAP3</a>-Dateien und <a href="Universal_Mobile_Telecommunications_System" title="Universal Mobile Telecommunications System">UMTS</a>.
</p><p>Meist werden in ASN.1 spezifizierte Daten mit den einfach zu handhabenden <i>Basic Encoding Rules (BER)</i> kodiert. In Bereichen, bei denen eine platzsparende Kodierung erwünscht ist (zum Beispiel Mobilfunk), werden die <i>Packed Encoding Rules (PER)</i> bevorzugt. Weiterhin existieren die <a href="Injektivit%C3%A4t" class="mw-redirect" title="Injektivität">injektiven</a> <i>Canonical Encoding Rules (CER)</i> und <i>Distinguished Encoding Rules (DER)</i>, wobei letztere weiter verbreitet sind. Die Distinguished Encoding Rules sind eine Untermenge der BER und sind eine Codierung von ASN.1-Datenbeschreibungen, die auf Bitebene völlig eindeutig ist. Es gibt in den DER also im Unterschied zu den BER für jeden ASN.1-Wert nur eine mögliche Codierung. Damit eignen sie sich für Fälle, in denen ASN.1-Daten digital signiert werden müssen oder plattformübergreifend ausgetauscht werden sollen, beispielsweise in digitalen Zertifikaten (siehe <a href="X.509" title="X.509">X.509</a>).
</p>
<div class="mw-heading mw-heading2"><h2 id="Syntax_und_Semantik"><span id="Syntax"></span>Syntax und Semantik</h2></div>
<p>ASN.1 wird in einer <a href="Backus-Naur-Form" title="Backus-Naur-Form">BNF</a>-ähnlichen Darstellung beschrieben, z. B.:
</p>
<pre>Record ::= SEQUENCE {
kopf Header,
daten Data OPTIONAL
}
</pre>
<pre>Header ::= IA5String
</pre>
<pre>Data ::= SET OF INTEGER
</pre>
<p>Im nächsten Beispiel wird ein <i>Modul</i> vereinbart. Es ist möglich, dieses Modul auch mittels eines <a href="Object_Identifier" title="Object Identifier">Object Identifiers</a> zu finden. Dies geschieht, indem man dem Modulnamen eine <i>Objektreferenz</i> (<i>Object Reference</i>) anfügt, z. B.:
</p>
<pre>Modul-name {joint-iso-itu-t(2) example(999)} DEFINITIONS ::=
BEGIN
Daten-struktur ::= SEQUENCE {
teil INTEGER,
fragment IA5String
}
END
</pre>
<p>Vor dem Begriff <span style="font-family:monospace;">DEFINITIONS</span> wird mittels der geschweiften Klammern eine Objektreferenz, also eine ID angelegt. Die Objektreferenz verweist auf die Stelle in einem Baum von Referenzen bzw. Vereinbarungen, an der das richtige Objekt zu finden ist. Die ID aus diesem Beispiel verweist auf die erste Wurzel in der ersten Ebene der Verweisstruktur. Module in der oben dargestellten Form sind nötig, um eine Vereinbarung zu treffen, wie Daten übertragen werden sollen. Daten, die wie im obigen Beispiel definiert sind, werden wie folgt übertragen: <code>{ 2, "Teil2" }</code>.
</p><p>ASN.1 kennt dazu u. a.
</p>
<ul><li>Elementare Typen, z. B.
<ul><li><span style="font-family:monospace;">BIT STRING</span> (binäre Zeichenfolge)</li>
<li><span style="font-family:monospace;">BOOLEAN</span></li>
<li><span style="font-family:monospace;">IA5String</span> (nach IA5-Tabelle kodierte Zeichenfolge, siehe <a href="ISO_646" title="ISO 646">ISO 646</a>)</li>
<li><span style="font-family:monospace;">INTEGER</span></li></ul></li>
<li>Zusammengesetzte Typen, z. B.
<ul><li><span style="font-family:monospace;">CHOICE</span> (Summentyp)</li>
<li><span style="font-family:monospace;">SEQUENCE</span> (geordnete Abfolge verschiedener Typen)</li>
<li><span style="font-family:monospace;">SEQUENCE OF <Typ></span> (geordnete Abfolge gleichen Typs)</li>
<li><span style="font-family:monospace;">SET</span> (ungeordnete Abfolge verschiedener Typen)</li>
<li><span style="font-family:monospace;">SET OF <Typ></span> (ungeordnete Abfolge gleichen Typs)</li></ul></li>
<li>Spezielle Datentypen, z. B.
<ul><li><span style="font-family:monospace;"><a href="Object_Identifier" title="Object Identifier">OBJECT IDENTIFIER</a></span> (weltweit eindeutige Kennung)</li></ul></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Normen_und_Standards">Normen und Standards</h2></div>
<p>ASN.1 hat eine lange Historie mit unterschiedlichen Vorläufern und Veröffentlichungen in unterschiedlichen Organisationen.
</p>
<dl><dt>1. Generation</dt>
<dd></dd></dl>
<ul><li>X.208: ersetzt durch X.680</li>
<li>X.209: ersetzt durch X.690</li></ul>
<dl><dt>2. Generation</dt>
<dd></dd></dl>
<p>Reihe X.680:
</p>
<ul><li>X.680: Specification of Basic Notation</li>
<li>X.681: Information Object Specification</li>
<li>X.682: Constraint Specification</li>
<li>X.683: Parameterization of ASN.1 Specifications</li></ul>
<p>Reihe X.690:
</p>
<ul><li>X.690: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</li>
<li>X.691: Specification of Packed Encoding Rules (PER)</li>
<li>X.692: Specification of Encoding Control Notation (ECN)</li>
<li>X.693: XML Encoding Rules</li>
<li>X.694: Mapping W3C XML Schema Definitions into ASN.1</li>
<li>X.696: Specification of Octet Encoding Rules (OER) and Canonical Octet Encoding Rules (COER)</li></ul>
<dl><dt>3. Generation</dt>
<dd></dd></dl>
<p>Reihe ISO 8824:
</p>
<ul><li>ISO/IEC 8824-1: Abstrakte Syntax Notation Eins (ASN.1): Spezifikation von Basisnotationen.</li>
<li>ISO/IEC 8824-2: Abstrakte Syntax Notation Eins (ASN.1): Spezifikation von Informationsobjekten.</li>
<li>ISO/IEC 8824-3: Abstrakte Syntax Notation Eins (ASN.1): Spezifikation von Beschränkungen.</li>
<li>ISO/IEC 8824-4: Abstrakte Syntax Notation Eins (ASN.1): Parametrierung von ASN.1 Spezifikationen.</li></ul>
<p>Reihe ISO 8825:
</p><p><i>Hinweis: Die offiziellen deutschen Titel dieser Spezifikationen enthalten zwar das Wort </i>verschlüsseln<i>, das ist aber nicht im Sinne der <a href="Kryptographie" title="Kryptographie">Kryptographie</a> gemeint, sondern wie im <a href="Internationale_statistische_Klassifikation_der_Krankheiten_und_verwandter_Gesundheitsprobleme" title="Internationale statistische Klassifikation der Krankheiten und verwandter Gesundheitsprobleme">Sprachgebrauch der Mediziner</a> üblich. Technisch exakt wäre hier, von <a href="Code" title="Code">Kodierung</a> zu sprechen.</i>
</p>
<ul><li>ISO/IEC 8825-1: ASN.1 Verschlüsselungsregeln: Spezifikation von Basisverschlüsselungsregeln (BER), vorschriftsmäßigen Verschlüsselungsregeln (CER) und hervorragenden Verschlüsselungsregeln.</li>
<li>ISO/IEC 8825-2: ASN.1 Verschlüsselungsregeln: Spezifikation von komprimierten Verschlüsselungsregeln (PER).</li>
<li>ISO/IEC 8825-3: Kodierungsregeln für ASN.1: Spezifikation der Verschlüsselungkontrollnotation (ECN).</li>
<li>ISO/IEC 8825-4: Kodierungsregeln für ASN.1: XML Kodierungsregeln (XER).</li>
<li>ISO/IEC 8825-5: ASN.1 Kodierungsregeln: Abbildung der W3C XML Schema-Definitionen auf ASN.1.</li>
<li>ISO/IEC 8825-6: ASN.1 encoding rules: Registration and application of PER encoding instructions.</li>
<li>ISO/IEC 8825-7: ASN.1 encoding rules - Part 7: Specification of Octet Encoding Rules (OER).</li></ul>
<p><br>
</p>
<dl><dt>Sonstige</dt>
<dd></dd></dl>
<ul><li>S. Legg: <i><a href="Request_for_Comments" title="Request for Comments">RFC</a>: <style data-mw-deduplicate="TemplateStyles:r250917974">
/* start https://de.wikipedia.org/ */
.mw-parser-output .dewiki-iconexternal>a{background-position:center right!important;background-repeat:no-repeat!important}body.skin-minerva .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/OOjs_UI_icon_external-link-ltr-progressive.svg")!important;background-size:10px!important;padding-right:13px!important}body.skin-timeless .mw-parser-output .dewiki-iconexternal>a,body.skin-monobook .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/MediaWiki_external_link_icon.svg")!important;padding-right:13px!important}body.skin-vector .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/Link.ernal-small-ltr-progressive.svg")!important;background-size:0.857em!important;padding-right:1em!important}
/* end https://de.wikipedia.org/ */
</style><span class="dewiki-iconexternal"><a href="https://datatracker.ietf.org/doc/html/rfc3641" class="extiw external" title="rfc:3641">3641</a></span></i> – <i><span lang="en">Generic String Encoding Rules (GSER) for ASN.1 Types</span></i>. Oktober 2003 (veraltet, englisch).</li>
<li>S. Legg: <i><a href="Request_for_Comments" title="Request for Comments">RFC</a>: <span class="dewiki-iconexternal"><a href="https://datatracker.ietf.org/doc/html/rfc4792" class="extiw external" title="rfc:4792">4792</a></span></i> – <i><span lang="en">Encoding Instructions for the Generic String Encoding Rules (GSER)</span></i>. Januar 2007 (englisch).</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li>Walter Gora: <cite style="font-style:italic">ASN.1 – Abstract Syntax Notation One</cite>. Nachdruck der 3. Auflage. Fossil-Verlag, Köln 1998, ISBN 3-931959-18-X, Edition Netze.<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abookitem&rfr_id=info:sid/de.wikipedia.org:Abstract+Syntax+Notation+One&rft.atitle=Edition+Netze&rft.au=Walter+Gora&rft.btitle=ASN.1+-+Abstract+Syntax+Notation+One&rft.date=1998&rft.edition=Nachdruck+der+3.+Auflage&rft.genre=bookitem&rft.isbn=393195918X&rft.place=K%C3%B6ln&rft.pub=Fossil-Verlag" style="display:none"> </span></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://www.itu.int/rec/T-REC-X.680/">ASN.1 Standard</a></li>
<li><a rel="nofollow" class="external text" href="https://www.itu.int/en/ITU-T/asn1/Pages/asn1_project.aspx">ASN.1 Project</a></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2023-09-29" href="https://de.wikipedia.org/wiki/?title=Abstract_Syntax_Notation_One&oldid=237737522">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>